import axios from 'axios';
import cookie from 'js-cookie';
import Base64 from './Base64'
import Login from '../api/login.js'
import router from "@/router";

// 创建axios实例化create亏欸特
const serve = axios.create({
    baseURL: 'http://192.168.1.84:8081/m.api',
    timeout: 15000
});
// 添加请求拦截器config肯非个
serve.interceptors.request.use(config => {
    console.log(config)
    // 在发送请求之前做些什么
    config.headers['AdminToken'] = cookie.get("Token")
    return config;
}, error => {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
serve.interceptors.response.use(async response => {
    // 不等于200全部拦截下来
    // if (response.data.errno!=200) {
    //     prompt.error(response.data.errmsg)
    // }
    if (response.data.errno == 10001 || response.data.errno == 10006) {
        cookie.remove("Token")
        if (cookie.get('username') || cookie.get('password')) {  //判断账号密码是否登录
            //解密重新请求登入接口
            let name = Base64.decode(cookie.get('username'))
            let pass = Base64.decode(cookie.get('password'))
            let info = { 
                name: name,
                pass: pass,
                age: '666666'
            }
            let array = await Login.login(info)
            if (array.status == 200) {  //判断status是否成功
                var time = new Date(new Date().getTime() + 60 * 1000 *20)//过期数据
                cookie.set('Token', array.data.data,{expires: time})
                return serve(response.config)
            }
        } else {
            router.push("/Login")
        }
    }
    // 对响应数据做点什么
    return response;
}, error => {
    router.push("/Home/directory")
    // 对响应错误做点什么
    return Promise.reject(error);
});
export default serve;

